import wx from 'weixin-js-sdk'
import api from '@/api/api'
import axios from 'axios'
var defaults = {
    mpID: '',
    userID: '',
    shareData: {
        shareTitle: '标题',
        shareContent: '内容',
        shareLink: '',
        shareImgUrl: ''
    },
    wx_server: 'http://wxapi.vstudy.net.cn/wecastsvr'
};
let shareApi = {
    getMpJsConfig: function(mp_id) {
        var params = {
            functioncode: 'mp_get_js_config',
            mp_id: mp_id,
            url: encodeURIComponent(window.location.href.split('#')[0])
        };
        var _sefl = this;
        var temp_url = encodeURIComponent(window.location.href.split('#')[0]);
        //alert(temp_url);
        axios.get('http://wxapi.vlearn.cn/wecastsvr' + '?functioncode=mp_get_js_config&mp_id=' + mp_id + '&url=' + temp_url)
            .then(function(response) {
                _sefl.loadWxConfig(response.data.record);
            });
    },

    loadWxConfig: function(json) {
        wx.config({
            debug: false,
            appId: json.appid,
            timestamp: json.timestamp,
            nonceStr: json.noncestr,
            signature: json.signature,
            jsApiList: [
                'checkJsApi',
                'onMenuShareTimeline',
                'onMenuShareAppMessage',
                'onMenuShareQQ'
            ]
        });
        wx.ready(function() {
            // 1 判断当前版本是否支持指定 JS 接口，支持批量判断
            wx.checkJsApi({
                jsApiList: [
                    'onMenuShareTimeline',
                    'onMenuShareAppMessage',
                    'onMenuShareQQ'
                ],
                success: function(res) {
                    // alert(JSON.stringify(res));
                }
            });

            wx.onMenuShareTimeline({
                title: defaults.shareData.shareTitle, // 分享标题
                link: defaults.shareData.shareLink, // 分享链接
                imgUrl: defaults.shareData.shareImgUrl, // 分享图标
                trigger: function(res) {
                    // 不要尝试在trigger中使用ajax异步请求修改本次分享的内容，因为客户端分享操作是一个同步操作，这时候使用ajax的回包会还没有返回
                    // alert('分享到朋友圈')
                },
                success: function() {
                    // 用户确认分享后执行的回调函数
                },
                cancel: function() {
                    // 用户取消分享后执行的回调函数
                },
                fail: function(res) {
                    alert(JSON.stringify(res));
                }
            });

            wx.onMenuShareAppMessage({
                title: defaults.shareData.shareTitle,
                desc: defaults.shareData.shareContent,
                link: defaults.shareData.shareLink,
                imgUrl: defaults.shareData.shareImgUrl,
                trigger: function(res) {
                    // 不要尝试在trigger中使用ajax异步请求修改本次分享的内容，因为客户端分享操作是一个同步操作，这时候使用ajax的回包会还没有返回
                    // alert(link);
                },
                success: function(res) {
                    // alert('已分享');
                },
                cancel: function(res) {
                    // alert('已取消');
                },
                fail: function(res) {
                    alert(JSON.stringify(res));
                }
            });
            wx.onMenuShareQQ({
                title: defaults.shareData.shareTitle, // 分享标题
                desc: defaults.shareData.shareContent, // 分享描述
                link: defaults.shareData.shareLink, // 分享链接
                imgUrl: defaults.shareData.shareImgUrl, // 分享图标
                success: function() {
                    // 用户确认分享后执行的回调函数
                },
                cancel: function() {
                    // 用户取消分享后执行的回调函数
                },
                fail: function(res) {
                    alert(JSON.stringify(res));
                }
            });
        });

        wx.error(function(res) {
            console.log('wx.error: ' + JSON.stringify(res));
            //alert('wx.error: ' + JSON.stringify(res));
        });
    },

    initConfig: function(options) {
        for (var item in options) {
            defaults[item] = options[item];
        }
        if (defaults.mpID != '') {
            this.getMpJsConfig(defaults.mpID);
        }
    }
}
export default shareApi